Apparatus and method for performing application in electronic device

ABSTRACT

The present disclosure relates to an apparatus and method for selecting a preloading application by considering a user pattern of an electronic device and for determining a preloading level. The electronic device according to the present disclosure includes a data management unit for determining a score of an application, and an application selection unit for selecting a preloading application based on the score of the application. In addition, the electronic device may further include a preloading level determination unit for determining a preloading level based on a variable indicating a state of the electronic device with respect to the selected preloading target application and the score.

CROSS-REFERENCE TO RELATED APPLICATION(S)

This application is a U.S. National Stage application under 35 U.S.C. §371 of an International application number PCT/KR2016/010895, filed onSep. 29, 2016, which is based on and claimed priority of a Korean patentapplication number 10-2015-0139290, filed on Oct. 2, 2015, in the KoreanIntellectual Property Office, the disclosure of which is incorporated byreference herein in its entirety.

TECHNICAL FIELD

The present disclosure relates to an apparatus and method for executingan application in an electronic device.

BACKGROUND ART

An application program used in a smart platform such as mobile, smartTelevision (TV), Internet of things (IoT), and the like is called anapplication. If the application is launched, resources such as classes,layouts, images, libraries, or the like are read by a memory to performa computation. Due to such an operation, a latency time may be requiredto some extents to completely execute the launched application in ascreen. Recently, with the improved performance of a terminal,application execution performance is improved. However, optionally, ifan application with a great amount of resources is executed or a currentstate of the terminal is not good, an application launching speedexperienced by a user may be increased.

The smart platform uses a preloading scheme to improve the applicationlaunching speed. A manufacturer of an electronic device may select anapplication, which is frequently used or important in manufacturedgoods, as a preloading application. If a specific application isselected as the preloading application in the smart platform, alaunching time can be shortened in a case where the user executes theapplication at a later time through pre-execution immediately afterbooting the electronic device. If the application is executed for thefirst time, the launching time may be increased due to requiredresources and execution of various computational tasks. These tasks maybe executed in advance to maintain a background state. In general, ifthe application is executed, a launching operation begins immediatelyafter a start event is received from the user. However, in case of apreloading target application, a launching process is partially completein advance through the pre-execution immediately after booting, and thusa launching time experienced by the user can be decreased.

SUMMARY

An embodiment of the present disclosure provides a preloadingapplication selection criterion which is differentiated from theconventional preloading application selection method, and may provide acriterion for determining a preloading level by considering a currentstate of an electronic device.

Another embodiment of the present disclosure provides an apparatus andmethod for selecting a preloading application in an electronic device towhich a smart platform is applied.

Another embodiment of the present disclosure provides an apparatus andmethod for selecting a preloading application in accordance with anexternal device interworking with an electronic device to which a smartplatform is applied.

Another embodiment of the present disclosure provides an apparatus andmethod for selecting a preloading application in accordance with anapplication (APP) page list in an electronic device to which a smartplatform is applied.

Another embodiment of the present disclosure provides an apparatus andmethod for determining a list order in an APP page list in an electronicdevice to which a smart platform is applied.

Another embodiment of the present disclosure provides an apparatus andmethod for selecting a preloading application in accordance with aninput interface in an electronic device to which a smart platform isapplied.

Another embodiment of the present disclosure provides an apparatus andmethod for selecting a preloading application in accordance with aclassification of an application region in an electronic apparatus towhich a smart platform is applied.

Another embodiment of the present disclosure provides an apparatus andmethod for detecting a user's touch input through a touch panel andselecting a preloading application in accordance with a classificationof the touch input in an electronic device to which a smart platform isapplied.

Another embodiment of the present provides an apparatus and method forsharing and updating information regarding a preloading applicationthrough interworking between various electronic devices to which a smartplatform is applied.

Another embodiment of the present disclosure provides an apparatus andmethod for determining a preloading level for a preloading applicationin an electronic device to which a smart platform is applied.

Another embodiment of the present disclosure is to provide an apparatusand method for maintaining and updating history data in an electronicdevice to which a smart platform is applied.

Another embodiment of the present disclosure provides an apparatus andmethod for selecting a preloading application by considering anapplication execution time through history data in an electronic deviceto which a smart platform is applied.

An electronic device according to various embodiments of the presentdisclosure includes a first memory configured to store applications, asecond memory configured to temporarily store the applications to beexecuted, and a processor configured to preload at least one applicationto the second memory based on a score for each application determinedbased on at least one of a launching count and a launching time of theapplications.

A method of operating an electronic device according to variousembodiments of the present disclosure includes selecting at least oneapplication of a preloading target based on a score for each applicationdetermined based on at least one of a launching count and a launchingtime of applications stored in a first memory; and preloading the atleast one application to a second memory.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an electronic device in a network environmentaccording to an embodiment of the present disclosure;

FIG. 2 is a block diagram of an electronic device 201 according tovarious embodiments of the present disclosure;

FIG. 3 is a block diagram of a program module according to variousembodiments of the present disclosure;

FIG. 4A illustrates a structure of an electronic device 400 according toan embodiment of the present disclosure;

FIG. 4B illustrates a criterion of selecting a preloading applicationaccording to an embodiment of the present disclosure;

FIG. 5 is a flowchart illustrating an operation of selecting andpreloading a preloading application according to an embodiment of thepresent disclosure;

FIG. 6 is a flowchart illustrating an operation of selecting apreloading application based on interworking with an external deviceaccording to an embodiment of the present disclosure;

FIG. 7 is a flowchart illustrating an operation of selecting apreloading application based on an APP list page according to anembodiment of the present disclosure;

FIG. 8 is a detailed flowchart illustrating an operation of selecting apreloading application based on an APP list page according to anembodiment of the present disclosure;

FIGS. 9A and 9B illustrate a method of selecting a preloadingapplication based on a change in a displayed page according to anembodiment of the present disclosure;

FIG. 10 is a flowchart illustrating an operation of selecting apreloading application based on an input interface according to anembodiment of the present disclosure;

FIG. 11 is a flowchart illustrating an operation of selecting apreloading application by classifying an application region according toan embodiment of the present disclosure;

FIGS. 12A and 12B illustrate an example for identifying an applicationregion according to an embodiment of the present disclosure;

FIG. 13 is a flowchart illustrating an operation of selecting apreloading application by using a touch input method according to anembodiment of the present disclosure;

FIG. 14 illustrates a method of sharing information regarding apreloading application between electronic devices according to anembodiment of the present disclosure;

FIG. 15 is a flowchart illustrating a method of sharing S_(D)information if interworking is achieved between electronic devicesaccording to an embodiment of the present disclosure;

FIG. 16 is a flowchart for determining a preloading level according toan embodiment of the present disclosure;

FIG. 17 illustrates identifying of a preloading level based on aresource type according to an embodiment of the present disclosure;

FIG. 18 is a flowchart illustrating an overall operation of theelectronic device 400 according to an embodiment of the presentdisclosure;

FIG. 19 illustrates an effect of reducing a launching time of apreloaded application according to an embodiment of the presentdisclosure; and

FIG. 20 illustrates an effect according to an embodiment of the presentdisclosure.

DETAILED DESCRIPTION

Hereinafter, various embodiments of the present document are describedwith reference to the accompanying drawings. It should be appreciated,however, it is not intended to limit the embodiments of the presentdocument to the particular form disclosed, but, on the contrary, it isintended to cover all modifications, equivalents, and alternativesfalling within the spirit and scope of the embodiments of the presentdocument. Like reference numerals denote like components throughout thedrawings. Further, in the following description of the presentdisclosure, well-known functions or constructions are not described indetail since they would obscure the invention in unnecessary detail.

An expression “have”, “may have”, “include” or “may include” or the likeused in the present document is intended to indicate a presence of acorresponding characteristic (e.g., a number, a function, an operation,or a component such as a component), and should be understood that thereare additional possibilities of one or more other characteristics.

In the present document, an expression “A or B”, “A and/or B”, or “oneor more of A and/or B” or the like may include all possible combinationsof items enumerated together. For example, “A or B”, “at least one of Aand B”, or “at least one of A or B” may indicate all cases where: (1) atleast one A is included; (2) at least one B is included; and (3) atleast one A and at least one B are both included.

Although expressions such as “1^(st)”, “2^(nd)”, “first”, and “second”may be used in the present document to express various components, it isnot intended to limit the corresponding components. For example, theabove expressions may be used to distinguish one component from anothercomponent. For example, a 1^(st) user device and a 2^(nd) user deviceare both user devices, and indicate different user devices. For example,a 1^(st) component may be termed a 2^(nd) component, and similarly, the2^(nd) component may be termed the 1^(st) component without departingfrom the scope of the present document.

If a certain component (e.g., the 1^(st) component) is mentioned asbeing “operatively or communicatively coupled with/to” or “connected to”a different component (e.g., the 2^(nd) component), it is to beunderstood that the certain component is directly coupled with/toanother component or can be coupled with/to the different component viaanother component (e.g., a 3^(rd) component). On the other hand, if thecertain component (e.g., the 1^(st) component) is mentioned as being“directly coupled with/to” or “directly connected to” the differentcomponent (e.g., the 2^(nd) component), it may be understood thatanother component (e.g., the 3^(rd) component) is not present betweenthe certain component and the different component.

An expression “configured to” used in the present document may beinterchangeably used with, for example, “suitable for”, “having thecapacity to”, “designed to”, “adapted to”, “made to”, or “capable of”according to a situation. A term “configured to” may not imply only“specially designed to” in a hardware manner. Instead, in a certainsituation, an expressed “a device configured to” may imply that thedevice is “capable of” together with other devices or components. Forexample, “a processor configured to perform A, B, and C” may imply adedicated processor (e.g., an embedded processor) for performing acorresponding operation or a generic-purpose processor (e.g., CentralProcessing Unit (CPU) or an application processor) capable of performingcorresponding operations by executing one or more software programsstored in a memory device.

Terms used in the present document are for the purpose of describingparticular embodiments only and are not intended to limit otherembodiments. A singular expression may include a plural expressionunless there is a contextually distinctive difference. Unless otherwisedefined, all terms (including technical and scientific terms) usedherein have the same meaning as commonly understood by those ordinarilyskilled in the art disclosed in the present document. It will be furtherunderstood that terms, such as those defined in commonly useddictionaries, should be interpreted as having a meaning that isconsistent with their meaning in the context of the relevant art, andwill not be interpreted in an idealized or overly formal sense unlessexpressly so defined herein. Optionally, the terms defined in thepresent document should not be interpreted to exclude the embodiments ofthe present document.

An electronic device according to various embodiments of the presentdocument may include, for example, at least one of a smart phone, atablet Personal Computer (PC), a mobile phone, a video phone, an e-bookreader, a desktop PC, a laptop PC, a netbook computer, a workstation, aserver, a Personal Digital Assistant (PDA), a Portable Multimedia Player(PMP), a MPEG-1 Audio Layer 3 (MP3) player, a mobile medical device, acamera, and a wearable device. According to various embodiments, thewearable device may include at least one of an accessory-type device(e.g., a watch, a ring, a bracelet, an anklet, a necklace, glasses,contact lenses, or a Head-Mounted Device (HMD)), a fabric- orclothes-integrated device (e.g., electronic clothes), a bodyattaching-type device (e.g., a skin pad or tattoo), or a bodyimplantable device (e.g., an implantable circuit).

According to some embodiments, the electronic device may be a homeappliance. The home appliance may include, for example, at least one ofa TeleVision (TV), a Digital Video Disk (DVD) player, an audio player, arefrigerator, an air conditioner, a cleaner, an oven, a microwave oven,a washing machine, an air purifier, a set-top box, a home automationcontrol panel, a security control panel, a TV box (e.g., SamsungHomeSync™, Apple TV™, or Google TV™), a game console (e.g., Xbox™PlayStation™), an electronic dictionary, an electronic key, a camcorder,and an electronic picture frame.

According to other embodiments, the electronic device may include atleast one of various medical devices (e.g., various portable medicalmeasuring devices (e.g., a blood sugar measuring device, a hear ratemeasuring device, a blood pressure measuring device, a body temperaturemeasuring device, etc.), Magnetic Resonance Angiography (MRA), MagneticResonance Imaging (MRI), Computed Tomography (CT), imaging equipment,ultrasonic instrument, etc.)), a navigation device, a Global NavigationSatellite System (GNSS), an Event Data Recorder (EDR), a Flight DataRecorder (FDR), a car infotainment device, an electronic equipment forship (e.g., a vessel navigation device, a gyro compass, etc.), avionics,a security device, a car head unit, an industrial or domestic robot, anAutomatic Teller's Machine (ATM) of financial institutions, Point OfSales (POS) of shops, and Internet of things (e.g., a light bulb,various sensors, an electric or gas meter, a sprinkler device, a firealarm, a thermostat, a streetlamp, a toaster, a fitness equipment, a hotwater tank, a heater, a boiler, etc.).

According to some embodiments, the electronic device may include atleast one of furniture or a part of buildings/constructions, anelectronic board, an electronic signature input device, a projector, andvarious measurement machines (e.g., water supply, electricity, gas,propagation measurement machine, etc.). In various embodiments, theelectronic device may be one or more combinations of the aforementionedvarious devices. According to some embodiments, the electronic devicemay be a flexible device. Further, the electronic device according to anembodiment of the present document is not limited to the aforementioneddevices, and may include a new electronic device based on technicalprogress.

Hereinafter, an electronic device according to various embodiments willbe described with reference to the accompanying drawings. The term‘user’ used in the various embodiments may refer to a person who usesthe electronic device or a device (e.g., an Artificial Intelligence (AI)electronic device) which uses the electronic device.

Referring to FIG. 1, an electronic device 101 in a network environment100 is disclosed according to various embodiments. The electronic device101 may include a bus 110, a processor 120, a memory 130, aninput/output interface 150, a display 160, and a communication interface170. In a certain embodiment, the electronic device 101 may omit atleast one of the aforementioned components or may additionally includeother components.

The bus 110 may include a circuit for connecting the aforementionedcomponents 110 to 170 to each other and for delivering communication(e.g., a control message and/or data) between the aforementionedcomponents.

The processor 120 may include one or more of a Central Processing Unit(CPU), an Application Processor (AP), and a Communication Processor(CP). The processor 120 may control, for example, at least one of othercomponents of the electronic device 101 and/or may execute an arithmeticoperation or data processing for communication.

The memory 130 may include a volatile and/or non-volatile memory. Thememory 130 may store, for example, a command or data related to at leastone other component of the electronic device 101. According to anembodiment, the memory 130 may store a software and/or a program 140.The program 140 may include, for example, a kernel 141, a middleware143, an Application Programming Interface (API) 145, and/or anapplication program (or an “application”) 147, or the like. At leastpart of the kernel 141, middleware 143, or API 145 may be referred to asan Operating System (OS).

The kernel 141 may control or manage, for example, system resources(e.g., the bus 110, the processor 120, the memory 130, etc.) used toexecute an operation or function implemented in other programs (e.g.,the middleware 143, the API 145, or the application program 147).Further, the kernel 141 may provide an interface capable of controllingor managing the system resources by accessing individual components ofthe electronic device 101 in the middleware 143, the API 145, or theapplication program 147.

The middleware 143 may perform, for example, a mediation role so thatthe API 145 or the application program 147 can communicate with thekernel 141 to exchange data.

Further, the middleware 143 may handle one or more task requestsreceived from the application program 147 according to a priority. Forexample, the middleware 143 may assign a priority of using the systemresources (e.g., the bus 110, the processor 120, or the memory 130) ofthe electronic device 101 to at least one of the application programs147. For instance, the middleware 143 may process the one or more taskrequests according to the priority assigned to the at least one of theapplication programs, and thus may perform scheduling or load balancingon the one or more task requests.

The API 145 may include at least one interface or function (e.g.,instruction), for example, for file control, window control, videoprocessing, or character control, as an interface capable of controllinga function provided by the application 147 in the kernel 141 or themiddleware 143.

The input/output interface 150 may play a role of an interface fordelivering, for example, a command or data input from a user or adifferent external device(s) to the different components of theelectronic device 101. Further, the input/output interface 150 mayoutput a command or data received from the different component(s) of theelectronic device 101 to the different external device.

The display 160 may include various types of displays, for example, aLiquid Crystal Display (LCD) display, a Light Emitting Diode (LED)display, an Organic Light-Emitting Diode (OLED) display, aMicroElectroMechanical Systems (MEMS) display, or an electronic paperdisplay. The display 160 may display, for example, a variety of contents(e.g., text, image, video, icon, symbol, etc.) to the user. The display160 may include a touch screen. For example, the display 160 may receivea touch, gesture, proximity, or hovering input by using a stylus pen ora part of a user's body.

The communication interface 170 may establish, for example,communication between the electronic device 101 and the external device(e.g., a 1^(st) external electronic device 102, a 2^(nd) externalelectronic device 104, or a server 106). For example, the communicationinterface 170 may communicate with the external device (e.g., the 2^(nd)external electronic device 104 or the server 106) by being connected toa network 162 through wireless communication or wired communication.

As a cellular communication protocol, the wireless communication mayuse, for example, at least one of Long-Term Evolution (LTE), LTE Advance(LTE-A), Code Division Multiple Access (CDMA), Wideband CDMA (WCDMA),Universal Mobile Telecommunications System (UMTS), Wireless Broadband(WiBro), Global System for Mobile Communications (GSM), and the like.Further, the wireless communication may include, for example, ashort-range communication 164. The short-range communication 164 mayinclude, for example, at least one of Wireless Fidelity (WiFi),Bluetooth, Near Field Communication (NFC), Global Navigation SatelliteSystem (GNSS), and the like. According to a usage region or a bandwidthor the like, the GNSS may include, for example, at least one of GlobalPositioning System (GPS), Global Navigation Satellite System (Glonass),Beidou Navigation Satellite System (hereinafter, “Beidou”), Galileo, theEuropean global satellite-based navigation system, and the like.Hereinafter, the “GPS” and the “GNSS” may be used interchangeably in thepresent document. The wired communication may include, for example, atleast one of Universal Serial Bus (USB), High Definition MultimediaInterface (HDMI), Recommended Standard-232 (RS-232), power-linecommunication, Plain Old Telephone Service (POTS), and the like. Thenetwork 162 may include, for example, at least one of atelecommunications network, a computer network (e.g., LAN or WAN), theInternet, and a telephone network.

Each of the 1^(st) and 2^(nd) external electronic devices 102 and 104may be the same type or different type of the electronic device 101.According to an embodiment, the server 106 may include a group of one ormore servers. According to various embodiments, all or some ofoperations executed by the electronic device 101 may be executed in adifferent one or a plurality of electronic devices (e.g., the electronicdevice 102 or 104 or the server 106). According to an embodiment, if theelectronic device 101 needs to perform a certain function or serviceeither automatically or at a request, the electronic device 101 mayrequest at least a part of functions related thereto alternatively oradditionally to a different electronic device (e.g., the electronicdevice 102 or 104 or the server 106) instead of executing the functionor the service autonomously. The different electronic device (e.g., theelectronic device 102 or 104 or the server 106) may execute therequested function or additional function, and may deliver a resultthereof to the electronic device 101. The electronic device 101 mayprovide the requested function or service either directly or byadditionally processing the received result. For this, for example, acloud computing, distributed computing, or client-server computingtechnique may be used.

FIG. 2 is a block diagram of an electronic device 201 according tovarious embodiments. The electronic device 201 may include, for example,all or some parts of the electronic device 101 of FIG. 1. The electronicdevice 201 may include one or more processors (e.g., ApplicationProcessors (APs)) 210, a communication module 220, a subscriber identitymodule 224, a memory 230, a sensor module 240, an input unit 250, adisplay 260, an interface 270, an audio module 280, a camera unit 291, apower management module 295, a battery 296, an indicator 297, and amotor 298.

The processor 210 may control a plurality of hardware or softwarecomponents coupled with the processor 210 by driving, for example, anoperating system or an application program, and may perform various dataprocessing and computations. The processor 210 may be implemented, forexample, with a System on Chip (SoC). According to an embodiment, theprocessor 210 may further include a Graphic Processing Unit (GPU) and/oran image signal processor. The processor 210 may include at least part(e.g., a cellular module 221) of the aforementioned components of FIG.2. The processor 210 may process a command or data, which is receivedfrom at least one of different components (e.g., a non-volatile memory),by loading it to a volatile memory and may store a variety of data inthe non-volatile memory.

The communication module 220 may have the same or similar structure ofthe communication interface 170 of FIG. 1. The communication module 220may include, for example, the cellular module 221, a WiFi module 223, aBlueTooth (BT) module 225, a GNSS module 227, a Near Field Communication(NFC) module 228, and a Radio Frequency (RF) module 229.

The cellular module 221 may provide a voice call, a video call, a textservice, an Internet service, or the like, for example, through acommunication network. According to an embodiment, the cellular module221 may identify and authenticate the electronic device 201 in thecommunication network by using a subscriber identity module (e.g., a SIMcard 224). According to an embodiment, the cellular module 221 mayperform at least some functions that can be provided by the AP 210.According to an embodiment, the cellular module 221 may include aCommunication Processor (CP).

Each of the WiFi module 223, the BT module 225, the GPS module 227, andthe NFC module 228 may include, for example, a processor for processingdata transmitted/received through a corresponding module. According tosome embodiments, at least some (e.g., two or more) of the cellularmodule 221, the WiFi module 223, the BT module 225, the GPS module 227,and the NFC module 228 may be included in one Integrated Chip (IC) or ICpackage.

The RF module 229 may transmit/receive, for example, a communicationsignal (e.g., a Radio Frequency (RF) signal). The RF module 229 mayinclude, for example, a transceiver, a Power Amp Module (PAM), afrequency filter, a Low Noise Amplifier (LNA), an antenna, or the like.According to another embodiment, at least one of the cellular module221, the WiFi module 223, the BT module 225, the GPS module 227, and theNFC module 228 may transmit/receive an RF signal via a separate RFmodule.

The SIM card 224 may include, for example, a card including a SIM and/oran embedded SIM, and may include unique identification information(e.g., an Integrated Circuit Card IDentifier (ICCID)) or subscriberinformation (e.g., an International Mobile Subscriber Identity (IMSI)).

The memory 230 (e.g., the memory 130) may include, for example, aninternal memory 232 or an external memory 234. The internal memory 232may include, for example, at least one of a volatile memory (e.g., aDynamic RAM (DRAM), a Static RAM (SRAM), a Synchronous Dynamic RAM(SDRAM), etc.) and a non-volatile memory (e.g., a One Time ProgrammableROM (OTPROM), a Programmable ROM (PROM), an Erasable and ProgrammableROM (EPROM), an Electrically Erasable and Programmable ROM (EEPROM), amask ROM, a flash ROM, a flash memory (e.g., a NAND flash memory, a NORflash memory, etc.), a hard drive, or a Solid State Drive (SSD)).

The external memory 234 may further include a flash drive, for example,Compact Flash (CF), Secure Digital (SD), Micro Secure Digital(Micro-SD), Mini Secure digital (Mini-SD), extreme Digital (xD), memorystick, or the like. The external memory 234 may be operatively and/orphysically coupled with the electronic device 201 via variousinterfaces.

The sensor module 240 may measure, for example, physical quantity ordetect an operational status of the electronic device 201, and mayconvert the measured or detected information into an electric signal.The sensor module 240 may include, for example, at least one of agesture sensor 240A, a gyro sensor 240B, a pressure sensor 240C, amagnetic sensor 240D, an acceleration sensor 240E, a grip sensor 240F, aproximity sensor 240G, a color sensor 240H (e.g., a Red, Green, Blue(RGB) sensor), a bio sensor 240I, a temperature/humidity sensor 240J, anillumination sensor 240K, and an Ultra Violet (UV) sensor 240M.Additionally or alternatively, the sensor module 240 may include, forexample, an E-nose sensor, an ElectroMyoGraphy (EMG) sensor, anElectroEncephaloGram (EEG) sensor, an ElectroCardioGram (ECG) sensor, anInfrared (IR) sensor, an iris sensor, and/or a fingerprint sensor. Thesensor module 240 may further include a control circuit for controllingat least one or more sensors included therein. In some embodiments, theelectronic device 201 may further include a processor configured tocontrol the sensor module 204 either separately or as a part of the AP210, and may control the sensor module 240 while the AP 210 is in asleep state.

The input device 250 may include, for example, a touch panel 252, a(digital) pen sensor 254, a key 256, or an ultrasonic input unit 258.The touch panel 252 may recognize a touch input, for example, by usingat least one of an electrostatic type, a pressure-sensitive type, and anultrasonic type. The touch panel 252 may further include a controlcircuit. The touch penal 252 may further include a tactile layer andthus may provide the user with a tactile reaction.

The (digital) pen sensor 254 may be implemented, for example, by usingthe same or similar method of receiving a touch input of the user or byusing an additional sheet for recognition. The key 256 may be, forexample, a physical button, an optical key, a keypad, or a touch key.The ultrasonic input unit 258 may use a microphone (e.g., the microphone288) to sense an ultrasonic wave generated in an input means, and mayidentify data corresponding to the sensed ultrasonic wave.

The display 260 (e.g., the display 160) may include a panel 262, ahologram 264, or a projector 266. The panel 262 may include the same orsimilar structure of the display 160 of FIG. 1. The panel 262 may beimplemented, for example, in a flexible, transparent, or wearablemanner. The panel 262 may be constructed as one module with the touchpanel 252. The hologram 264 may use an interference of light and show astereoscopic image in the air. The projector 266 may display an image byprojecting a light beam onto a screen. The screen may be located, forexample, inside or outside the electronic device 201. According to anembodiment, the display 260 may further include a control circuit forcontrolling the panel 262, the hologram 264, or the projector 266.

The interface 270 may include, for example, a High-Definition MultimediaInterface (HDMI) 272, a Universal Serial Bus (USB) 274, an opticalcommunication interface 276, or a D-subminiature (D-sub) 278. Theinterface 270 may be included, for example, in the communicationinterface 170 of FIG. 1. Additionally or alternatively, the interface270 may include, for example, a Mobile High-definition Link (MHL)interface, a Secure Digital (SD)/Multi-Media Card (MMC) interface, or anInfrared Data Association (IrDA) standard interface.

The audio module 280 may bilaterally convert, for example, a sound andelectric signal. At least some components of the audio module 208 may beincluded in, for example, the input/output interface 150 of FIG. 1. Theaudio module 280 may convert sound information which is input or output,for example, through a speaker 282, a receiver 284, an earphone 286, themicrophone 288, or the like.

The camera module 291 is, for example, a device for image and videocapturing, and according to an embodiment, may include one or more imagesensors (e.g., a front sensor or a rear sensor), a lens, an Image SignalProcessor (ISP), or a flash (e.g., LED or xenon lamp).

The power management module 295 may manage, for example, power of theelectronic device 201. According to an embodiment, the power managementmodule 295 may include a Power Management Integrated Circuit (PMIC), acharger Integrated Circuit (IC), or a battery fuel gauge. The PMIC mayhave a wired and/or wireless charging type. The wireless charging typemay include, for example, a magnetic resonance type, a magneticinduction type, an electromagnetic type, or the like, and may furtherinclude an additional circuit for wireless charging, for example, a coilloop, a resonant circuit, a rectifier, or the like. The battery gaugemay measure, for example, residual quantity of the battery 296 andvoltage, current, and temperature during charging. The battery 296 mayinclude, for example, a rechargeable battery and/or a solar battery.

The indicator 297 may indicate a specific state, for example, a bootingstate, a message state, a charging state, or the like, of the electronicdevice 201 or a part thereof (e.g., the AP 210). The motor 298 mayconvert an electric signal into a mechanical vibration, and may generatea vibration or haptic effect. Although not shown, the electronic device201 may include a processing unit (e.g., a GPU) for supporting a mobileTV. The processing unit for supporting the mobile TV may process mediadata according to a protocol of, for example, Digital MultimediaBroadcasting (DMB), Digital Video Broadcasting (DVB), media flow, or thelike.

Each of the components described in the present document may consist ofone or more components, and names thereof may vary based on a type ofelectronic device. The electronic device according to variousembodiments may include at least one of the aforementioned components.Some of the components may be omitted, or additional other componentsmay be further included. Further, some of the components of theelectronic device according to various embodiments may be combined andconstructed as one entity, so as to equally perform functions ofcorresponding components before combination.

FIG. 3 is a block diagram of a program module according to variousembodiments. According to an embodiment, a program module 310 (e.g., theprogram 140) may include an Operating System (OS) for controlling aresource related to an electronic device (e.g., the electronic device101) or various applications (e.g., the application 147) driven on theOS. The OS may be, for example, Android, iOS, Windows, Symbian, Tizen,Bada, or the like.

The programming module 310 may include a kernel 320, a middleware 330,an Application Programming Interface (API) 360, and/or an application370. At least part of the program module 310 can be preloaded on theelectronic device, or can be downloaded from an external electronicdevice (e.g., the electronic devices 102 and 104, the server 106, etc.).

The kernel 320 (e.g., the kernel 141) may include, for example, a systemresource manager 321 or a device driver 323. The system resource manager321 may perform control, allocation, retrieval, or the like of thesystem resource. According to an embodiment, the system resource manager321 may include a process managing unit, a memory managing unit, a filesystem managing unit, or the like. The device driver 323 may include,for example, a display driver, a camera driver, a Bluetooth driver, ashared memory driver, a USB driver, a keypad driver, a WiFi driver, anaudio driver, or an Inter-Process Communication (IPC) driver.

The middleware 330 may provide, for example, a function commonlyrequired by the application 370, or may provide various functionsthrough the API 360 so that the application 370 can effectively use alimited system resource in the electronic device. According to anembodiment, the middleware 330 (e.g., the middleware 143) may include atleast one of a runtime library 335, an application manager 341, a windowmanager 342, a multimedia manager 343, a resource manager 344, a powermanager 345, a database manager 346, a package manager 347, aconnectivity manager 348, a notification manager 349, a location manager350, a graphic manager 351, and a security manager 352.

The runtime library 335 may include, for example, a library module usedby a compiler to add a new function through a programming language whilethe application 370 is executed. The runtime library 335 may perform anoperation of an input/output management, a memory management, anarithmetic function, or the like.

The application manager 341 may manage, for example, a life cycle of atleast one application among the applications 370. The window manager 342may manage a Graphic User Interface (GUI) resource used in a screen. Themultimedia manager 343 may recognize a format required to reproducevarious media files, and may use a codec suitable for the format toperform encoding or decoding of the media file. The resource manager 344may manage a resource (e.g., a source code, a memory, a storage space,etc.) of at least any one of the applications 370.

The power manager 345 may manage, for example, a battery or power byoperating together with a Basic Input/Output System (BIOS), or the like,and may provide power information or the like required for theoperation. The database manager 346 may manage to generate, search, orchange a database to be used in at least one application among theapplications 370. The package manager 347 may manage an installation orupdate of an application distributed in a form of a package file.

The connectivity manager 348 may manage, for example, a wirelessconnection such as WiFi, Bluetooth, or the like. The notificationmanager 349 may display or notify an event such as an incoming message,an appointment, a proximity notification, or the like, in a manner ofnot disturbing the user. The location manager 350 may manage locationinformation of the electronic device. The graphic manager 351 may managea graphic effect to be provided to the user or a user interface relatedthereto. The security manager 352 may provide a general securityfunction required for system security, user authentication, or the like.According to an embodiment, if the electronic device (e.g., theelectronic device 101) includes a telephone function, the middleware 330may further include a telephony manager for managing a voice or videotelephony function of the electronic device.

The middleware 330 may include a middleware module for forming acombination of various functions of the aforementioned components. Themiddleware 330 may provide a module specified for each type of operatingsystem to provide a differentiated function. Further, the middleware 330may dynamically delete some of the existing components or may add newcomponents.

The API 360 (e.g., the API 145) is, for example, a set of APIprogramming functions, and may be provided with other configurationsaccording to an operating system. For example, in case of Android orIOS, one API set may be provided for each platform, and in case ofTizen, two or more API sets may be provided.

The application 370 (e.g., the application program 147) may include oneor more applications capable of providing a function of, for example, ahome 371, a dialer 372, a Short Message Service (SMS)/MultimediaMessaging Service (MIMS) 373, an Instant Message (IM) 374, a browser375, a camera 376, an alarm 377, a contact 378, a voice dial 379, ane-mail 380, a calendar 381, a media player 382, an album 383, a clock384, a health care (e.g., an application for measuring a physicalactivity level, a blood sugar level, etc.), or providing of environmentinformation (e.g., providing of atmospheric pressure, humidity, ortemperature information).

According to an embodiment, the application 370 may include anapplication (for convenience of explanation, hereinafter, referred to asan “information exchange application”) for supporting informationexchange between the electronic device (e.g., the electronic device 101)and an external electronic device (e.g., the electronic device 102 or104). The information exchange application may include, for example, anotification relay application for relaying specific information to theexternal electronic device or a device management application formanaging the external electronic device.

For example, the notification relay application may include a functionof relaying notification information generated in another application(e.g., an SMS/MMS application, an e-mail application, a health careapplication, an environment information application, etc.) of theelectronic device to the external electronic device (e.g., theelectronic device 202 or 204). Further, the notification relayapplication may receive notification information, for example, from theexternal electronic device and may provide it to the user.

The device management application may manage (e.g., install, delete, orupdate), for example, at least one function (e.g., turning on/turningoff the external electronic device itself (or some components thereof)or adjusting of a display illumination (or a resolution)) of an externalelectronic device (e.g., the electronic device 104) which communicateswith the electronic device, an application which operates in theexternal electronic device, or a service (e.g., a call service or amessage service) provided by the external electronic device.

According to an embodiment, the application 370 may include anapplication specified according to an attribute (e.g., as an attributeof the electronic device, a type of the electronic device is a mobilemedical device) of the external electronic device (e.g., the electronicdevice 102 or 104). According to an embodiment, the application 370 mayinclude an application received from the external electronic device(e.g., the server 106 or the electronic device 102 or 104). According toan embodiment, the application 370 (e.g., the application 134) mayinclude a preloaded application or a third party application that can bedownloaded from the server. A name of components of the program module310 according to the illustrated embodiment may differ based on an OStype.

According to various embodiments, at least a part of the program module310 may be implemented in software, firmware, hardware, or at least twoor more of combinations thereof. At least some parts of the programmingmodule 310 may be implemented (e.g., executed), for example, by aprocessor (e.g., the AP 210). At least some parts of the programmingmodule 310 may include, for example, modules, programs, routines, setsof instructions, processes, or the like for performing one or morefunctions.

A term “module” used in the present document may imply a unit including,for example, one of hardware, software, and firmware or a combination oftwo or more of them. The “module” may be interchangeably used with aterm such as a unit, a logic, a logical block, a component, a circuit,or the like. The “module” may be a minimum unit of an integrallyconstituted component or may be a part thereof. The “module” may be aminimum unit for performing one or more functions or may be a partthereof. The “module” may be mechanically or electrically implemented.For example, the “module” of the present disclosure may include at leastone of an each application Integrated Circuit (ASIC) chip, aField-Programmable Gate Arrays (FPGAs), and a programmable-logic device,which are known or will be developed and which perform certainoperations.

At least some parts of a device (e.g., modules or functions thereof) ormethod (e.g., operations) according to various embodiments may beimplemented with an instruction stored in a computer-readable storagemedia. If the instruction is executed by one or more processors (e.g.,the processor 120), the one or more processors may perform a functioncorresponding to the instruction. The computer-readable storage mediamay be, for example, the memory 130.

The computer readable recording medium may include a hard disk, a floppydisk, magnetic media (e.g., a magnetic tape), optical media (e.g., aCompact Disc-ROM (CD-ROM), a Digital Versatile Disc (DVD),magnetic-optic media (e.g., a floptical disk)), a hardware device (e.g.,a Read Only Memory (ROM), a Random Access Memory (RAM), a flash memory,or the like), or the like. An example of the program instructionincludes not only a machine language created by a compiler but also ahigh-level language executable by a computer by using an interpreter orthe like. The aforementioned hardware device may be configured tooperate as one or more software modules to perform the operation ofvarious exemplary embodiments, and the other way around is alsopossible.

The module or programming module according to various embodiments mayfurther include at least one or more components among the aforementionedcomponents, or may omit some of them, or may further include additionalother components. Operations performed by a module, programming module,or other components according to various embodiments may be executed ina sequential, parallel, repetitive, or heuristic manner. Further, someof the operations may be executed in a different order or may beomitted, or other operations may be added. In addition, an embodimentdisclosure in the present document is provided for explaining andunderstanding technical features, not for limiting the scope of thetechnique described in the present document. Therefore, all changesbased on the technical features of the present document or various otherembodiments will be construed as being included in the scope of thepresent document.

FIG. 4A illustrates a structure of an electronic device 400 according toan embodiment of the present disclosure. Hereinafter, the term ‘ . . .unit’, ‘ . . . device’, or the like implies a unit of processing atleast one function or operation, and may be implemented in hardware orsoftware or in combination of the hardware and the software.

For example, the electronic device 400 may fully or partially correspondto the electronic device 101 of FIG. 1. The electronic device 400 mayinclude a history data management unit 410, a preloading APP selectionunit 430, and a preloading level determination unit 450. A processor 401may include the history data management unit 410, the preloading APPselection unit 430, and the preloading level determination unit 450. Theelectronic device 400 may further include a first memory 470 and asecond memory 490.

The first memory 470 may have a non-volatile memory characteristic. Thatis, even if the electronic device is rebooted, data stored in the firstmemory 470 may remain before rebooting. The first memory 470 may be usedas a recording space of applications installed in the electronic device400. That is, the first memory 470 may store the applications. Inaddition, the electronic device 400 may maintain and manage dataregarding an accumulated execution count and launching speed of anapplication to be executed, by storing the data in the first memory 470.

The second memory 490 may have a volatile memory characteristic. Thatis, if the electronic device is rebooted, a task loaded through thesecond memory 490 may not be stored by the electronic device 400. If itis intended to execute one of applications stored in the first memory470, the application may be loaded to the second memory 490.Specifically, a layout, image, library, or the like of the applicationmay be loaded via the second memory 490 to execute the application. Inthis case, according to various embodiments of the present disclosure,the application may be preloaded to the second memory 490 before anexecution command occurs.

According to an embodiment, the electronic device 400 may preload apreloading target application selected by the preloading APP selectionunit 430 via the second memory 490. According to another embodiment, thepreloading level determination unit 450 of the electronic device 400determines a preloading level with respect to the preloading targetapplication selected by the pre-loading APP selecting unit 430, andthereafter preloads an application by considering the level in astepwise manner. According to another embodiment, the electronic device400 may skip the selection for the preloading target application anddetermine the preloading level via the preloading level determinationunit 450 for all applications of the electronic device. In addition, theelectronic device 400 may preload the application in a stepwise mannerby considering the determined level.

A method of operating each element will be described below in detail.The history data management unit 410 included in the processor 401 maydetermine a score S_(APP) by considering an execution count andlaunching time of an application to be executed in the electronic device400. The execution count of the application may include a totalaccumulated execution count or an application accumulated executioncount during a specific time (duration). In addition, if an externaldevice is coupled with the electronic device 400, the history datamanagement unit 410 may determine a store S_(device) by additionallyconsidering a total accumulated execution count of an application to beexecuted in a state where the external device is coupled or anaccumulated execution count during a specific time (duration). Anapplication launching time may be defined as a time required until aspecific application is executed after an execution command of theapplication is input by a user via an input interface. For example, thescore may be high if the application has a great execution count and along launching time. The history data management unit 410 may store thescore in the first memory 470. In addition, the history data managementunit 410 may maintain and update the score by considering a time elapse.The history data management unit 410 may provide the score to thepreloading APP selection unit 430 in order to select a preloadingapplication. In addition, the history data management unit 410 may alsoprovide the score to the preloading level determination unit 450 todetermine the preloading level.

The preloading APP selection unit 430 may select the preloading targetapplication based on the score provided from the history data managementunit 410. According to other embodiments of the present disclosure, thepreloading APP selection unit 430 may determine the preloading targetapplication by considering various situations. FIG. 4B illustrates threerequirements for selecting a preloading application. For example, thepreloading APP selection unit 430 may select a preloading targetapplication by considering a case where an external device is coupled.Alternatively, the preloading APP selection unit 430 may select thepreloading target application by considering an attribute of a pagedisplayed on the electronic device 400. Alternatively, the preloadingAPP selection unit 430 may select the preloading target applicationbased on a cursor movement. Alternatively, the preloading APP selectionunit 430 may select the preloading target application based on acomputation amount of a CPU. Alternatively, the preloading APP selectionunit 430 may detect a user input through a touch panel, distinguish auser touch input based on a pressing sensitivity and time, and selectthe preloading target application based on the distinguished user touchinput.

For example, it may be assumed a case where the external device iscoupled with the electronic device 400. In this case, the preloading APPselection unit 430 may select the preloading target application based onthe S_(device) provided from the history data management unit 410.

As another example, the preloading APP selection unit 430 may select thepreloading target application by using the S_(APP) and the pageattribute of the electronic device 400. The page attribute may bedistinguished according to whether it is currently displayed via theelectronic device 400. The page means a space for displaying icons forexecuting the application. Although multiple pages may exist, theelectronic device 400 may display only a limited number of pages at thesame time. In this case, since this is a state where an applicationcorresponding to icons included in the page being displayed can beselected by a user, the application is more likely to be executed.Therefore, the application corresponding to the icons included in thepage being displayed is preferably selected as a preloading application.Hereinafter, for convenience of explanation, a page being displayed isreferred to as a ‘displayed page’, and a page not being displayed butbeing hidden is referred to as a ‘hidden page’. Alternatively, thedisplayed page may be referred to as a ‘visible page’, and the hiddenpage may be referred to as a ‘side page’. Herein, it may be meaningfulto have an attribute in a page located at both sides of the page beingdisplayed among the hidden pages, but having the attribute may not besignificantly meaningful to the other pages. Therefore, the hidden pagementioned through the present specification described below is forillustrative purposes only, and the embodiment is not limited thereto.Thus, the hidden page may represent a page at both sides of thedisplayed page. As described above, a priority of a page attribute maybe higher in the displayed page than in the hidden page since a user ismore likely to execute the application on the displayed page.Specifically, the preloading APP selection unit 430 may select top Napplications having a high S_(APP) as preloading target applicationsamong applications located on the displayed page. In addition, thepreloading APP selection unit 430 may select top M applications having ahigh S_(APP) as the preloading target applications among applicationslocated on the hidden page. Herein, in general, N may be greater than M.In addition, the N applications and the M applications may be managed asa preloading target list. Herein, the N applications corresponding tothe displayed page may have a higher list order than the M applicationscorresponding to the hidden page. The preloading APP selection unit 430may change the preloading target list in the electronic device 400 byconsidering a case where the displayed page changes.

The preloading level determination unit 450 may determine a preloadinglevel with respect to an application selected by the preloading APPselection unit 430. Specifically, the preloading level determinationunit 450 may be provided with a preloading selection target applicationfrom the preloading APP selection unit 430. In addition, the preloadinglevel determination unit 450 may be provided with the S_(APP) andS_(device) from the history data management unit 410. The preloadinglevel determination unit 450 may determine a state of the electronicdevice, that is, a weight W of the electronic device 400 by consideringa free memory ratio and a CPU load of the second memory 490. Accordingto an embodiment, the preloading level determination unit 450 maydetermine a preloading level by multiplying the weight W determined byconsidering the state of the electronic device and the score providedfrom the history data management unit 430. For example, if the externaldevice is not coupled with the electronic device, the preloading levelof the application may be determined by a product of the S_(APP) and theW. Alternatively, if the external device is coupled with the electronicdevice 400, the preloading level of the application may be determined bya product of the S_(device) and the W. The value W may be in the rangeof 0 to 1, which represents a current state of the electronic device 400in percentage (%).

The present disclosure relates to preloading of an application bypredicting a usage of a user's application. In this case, the preloadingapplication may be selected using the prediction according to thefollowing three patterns. FIGS. 6 to 11, 12A, and 12B illustrate anapparatus and method for selecting a preloading application byconsidering the three patterns.

FIG. 5 is a flowchart illustrating an operation of selecting andpreloading a preloading application according to an embodiment of thepresent disclosure.

In operation 501, the electronic device 400 may select a preloadingtarget by considering an application usage pattern of a user. Thepreloading target is determined by a score for each application. Thescore may be determined based on a launching count and launching time ofapplications.

According to an embodiment, if the external device is coupled with theelectronic device 400, at least one preloading target application may beselected based on the S_(device). Herein, the S_(device) may bedetermined based on the accumulated launching count and launching timeof the application executed in a state where the external electronicdevice is coupled with the electronic device 400. Alternatively, theS_(device) may be determined based on the accumulated launching countand launching time of the application during a specific period of timein order to consider the application usage pattern of a recent user. Aspecific number of applications having a high S_(device) may be selectedas the preloading target by considering the state of the electronicdevice 400.

According to another embodiment, the electronic device 400 may selectthe preloading application based on an APP list page. If the userselects an application to be executed, it is displayed as an icon on ascreen. This page may be defined as the APP list page. The APP list pageis at least one page, and may usually include several pages. If it isassumed that the APP list page has several pages, an attribute may bedefined such that a page viewed through the display unit of the currentelectronic device 400 is a displayed page, and a page at both sides ofthe displayed page is a hidden page. The remaining other pages may nothave attributes. In general, since the user is highly likely to executean application located on the displayed page, the display page may havea higher priority of the page attribute than the hidden page. Theselection of the preloading application may be determined by consideringan accumulated launching count and launching time score, that is, an APPscore (hereinafter, ‘S_(APP)’) of applications located on respectivepages. Alternatively, the S_(APP) may be determined based on theaccumulated launching count and launching time of the application duringa specific period of time to consider a recent application usage patternof the user. The electronic device 400 may select an application havinga high S_(APP) provided by the history data management unit 410.However, since an attribute of each page has a different priority, thenumber of preloading applications selected for each attribute may beapplied differently, and the number may be expressed by a parameter andmay be applied flexibly according to a specification of a terminal. Inaddition, a time of staying on a corresponding page may be counted toselect a preloading application in case of staying more than a specifictime ‘T’.

According to another embodiment, the electronic device 400 may select apreloading target application in accordance with an input interface. Theelectronic device 400 may detect a new application input at a locationof a cursor controlled based on an input interface. Herein, the newapplication is an application which has not yet been preloaded. Thecursor may include a mouse point, a point of a smart pen, or the like.The cursor may be controlled through the mouse, the smart pen, or thelike to input a user command for the electronic device 400. Theelectronic device 400 may determine a preloading wait time ‘T’. Herein,the preloading wait time T means a wait time for preloading anapplication indicated by the cursor. The preloading wait time T may bedetermined by referring to the S_(APP) from the history data managementunit of a corresponding application. For example, the greater theS_(APP), the shorter the preloading wait time T may be set. That is, thepreloading wait time T may vary based on the application. After thepreloading wait time T of the application is determined, the electronicdevice 400 may determine whether a time for which the curser stays in aspecific application is greater than or equal to the preloading waittime ‘T’. If the time for which the curser stays in an application isless than the preloading wait time T of the application, the applicationmay not be preloaded. Otherwise, if the time for which the cursor staysin the application is greater than the preloading wait time T, theelectronic device 400 may select the application as a preloading target.Accordingly, the electronic device 400 may preload the application.

If at least one preloading target application is selected by the abovethree factors, in operation 503, the electronic device 400 may preloadthe application. However, optionally, if the preloading application isalready preloaded by the second memory 490, it may be excluded from apreloading selection target.

FIG. 6 is a flowchart illustrating an operation of selecting apreloading application based on interworking with an external deviceaccording to an embodiment of the present disclosure. The electronicdevice 400 to which smart platform is applied may be used in associationwith the external device. The electronic device 400 to which the smartplatform is applied may be used in association with a wearable deviceused in a form of glasses, a clock, or the like, and Internet of things(IoT). In this case, an application which uses various built-in sensors(accelerometer, GPS, proximity sensor, camera, etc.) may be used. Forexample, the electronic device 400 to which the smart platform isapplied may be coupled with the external device by using Bluetooth,Wi-Fi, wired communication such as HDMI, infrared communication, or thelike. In addition, the electronic device 400 may be directly retrievedfrom the electronic device 400, or may be easily coupled with theexternal device by using a dedicated application. In this case, alaunching count and launching time of an application used for eachcoupled external device may be recorded in the history data managementunit 410. In addition, the launching count and launching time of theapplication may be utilized in the selection of the preloadingapplication. A pattern used in the above method is not an accumulatedlaunching count of an overall application of the electronic device 400.That is, based on an external device's type and coupling mechanism, theaccumulated launching count of the application may be considered as auser pattern while the external device is coupled. Therefore, theS_(device) may be managed separately from a general launching count andlaunching time of the electronic device 400.

A specific operation method is as follows. If the external device iscoupled with the electronic device 400, in operation 601, the electronicdevice 400 may detect an external device to be coupled. Specifically,the electronic device 400 may detect a type (e.g., clock, glasses, etc.)of the external device to be coupled and a coupling mechanism (e.g.,Bluetooth, WiFi, etc.). If the external device to be coupled with theelectronic device 400 is detected, the electronic device 400 maygenerate a sensing event.

If the sensing event occurs, in operation 603, the electronic device 400may load a selection target of a preloading application. The selectiontarget may be managed based on the type of the external device and amanaged user pattern. A case where the coupled external device is awearable device such as a clock or the like may be assumed according toan embodiment. If the wearable device is coupled, specific applicationsmay be primarily used in the electronic device 400, and a used specificapplication may be managed as an application selection target of theexternal device. The selection target may be maintained and updated withhistory data, and the history data may be stored in the first memory 470of the electronic device 400.

After the selection target based on the coupled external device isloaded, in operation 605, the electronic device may select anapplication having a high S_(device) among the selection targets as apreloading target. Specifically, the S_(device) may be determined basedon an accumulated launching count and launching speed for the specificapplication while the coupled external device is coupled with theelectronic device 400. For example, while a wearable device such as awatch or the like is coupled with the electronic device 400, the higherthe accumulated launching count of the specific application, the higherthe S_(device) may be. The accumulated launching count may be countedbased on a specific duration for the purpose of applying a recent userpattern. For example, the accumulated launching count of the specificapplication may be counted based one week or one month. In addition, forexample, the slower the launching speed of the specific application, thehigher the S_(device) may be. In the selecting of the application havingthe high S_(device) as the preloading target, the number of applicationsto be preloaded may vary based on a user configuration and a state ofthe electronic device 400. For example, the number of applications to bepreloaded may be limited to a specific number or less based on the userconfiguration. In addition, the number of applications to be preloadedaccording to the state of the electronic device 400, that is, a load ofa CPU and the second memory 490, may be limited to a specific number orless.

If K applications having a high S_(device) are selected, in operation607, the electronic device 400 may determine the selected K applicationsas the preloading application. However, if a connection with an externaldevice is disconnected while an application selected as a preloadingtarget is not executed after being preloaded according to an embodiment,the preloaded application may be task-killed to increase efficiency ofmemory management.

Although not shown in FIG. 4A, the electronic device may further includea display unit capable of displaying various information via a screen.If the user selects an application to be executed, it is displayed as anicon on the screen. This page may be defined as the APP list page. TheAPP list page is at least one page, and may usually include severalpages. If it is assumed that the APP list page has several pages, anattribute may be defined such that a page viewed through the displayunit of the current electronic device 400 is a displayed page, and apage at both sides of the displayed page is a hidden page. The remainingother pages may not have attributes. In general, since the user ishighly likely to execute an application located on the displayed page,the display page may have a higher priority of the page attribute thanthe hidden page. The selection of the preloading application may bedetermined by considering an accumulated launching count and launchingtime score, that is, an APP score (hereinafter, ‘S_(APP)’) ofapplications located on respective pages. The electronic device 400 mayselect an application having a high S_(APP) provided by the history datamanagement unit 410. However, since an attribute of each page has adifferent priority, the number of preloading applications selected foreach attribute may be applied differently, and the number may beexpressed by a parameter and may be changed flexibly according to aspecification of a terminal. In addition, a time of staying on acorresponding page may be counted to select a preloading application incase of staying more than a specific time ‘T’. As a simple examplerather than a limitation of the embodiment, the preloading applicationmay be selected if it stays on the APP list page for at least 2 seconds.Since a plurality of applications may be selected, the application maybe managed with a list and then are inserted to a queue to performpreloading sequentially thereon. A specific operating method is asfollows.

FIG. 7 is a flowchart illustrating an operation of selecting apreloading application based on an APP list page according to anembodiment of the present disclosure.

In operation 701, the electronic device 400 may determine a time ofstaying on an APP list page displayed through the display unit of theelectronic device 400. For example, it may be determined whether thetime of staying on the APP list page is greater than or equal to aspecific time ‘T’. This is because, if the time of staying on the APPlist page is very short, it may be determined that the user of theelectronic device 400 has no intention to execute the applicationarranged on the APP list page.

If the time of staying on the APP list page is greater than or equal to‘T’, in operation 703, the electronic device 400 may identify a pageattribute. Specifically, the electronic device 400 may distinguish thedisplayed page and the hidden page. In addition, S_(APP)s ofapplications arranged on each page may be identified through historydata stored in the first memory 470 of the electronic device 400. TheS_(APP) may be determined by considering an accumulated launching countand launching time of the application. For example, the greater theaccumulated launching count of a specific application and the longer thelaunching time, the greater the S_(APP) may be. In addition, the S_(APP)stored in the history data may be maintained or updated according to atime flow. Alternatively, if an external device is coupled, theelectronic device 400 may identify S_(device) of the applicationsarranged on the APP list page.

In operation 705, the electronic device 400 selects at least oneapplication having a high S_(APP) (or S_(device)) on the displayed page.For example, the electronic device 400 may select top N applicationshaving the high S_(APP) (or S_(device)). Herein, N may be a fixed value,or may be a value which varies based on a state.

In operation 707, the electronic device 400 may select at least oneapplication having the highest S_(APP) (or S_(device)). For example, theelectronic device 400 may select top M applications having the highestS_(APP) (or S_(device)). Herein, M may be a fixed value, or may be avalue which varies based on a state. In addition, M and N may be set toidentical or different values.

In addition, in operation 709, the electronic device 400 may create alist for N applications corresponding to the displayed page and Mapplications corresponding to the hidden page. However, an applicationwhich has already been preloaded may be excluded from the list. Herein,N and M may vary based on a state of the electronic device 400. Ingeneral, a list of the N applications corresponding to the displayedpage may have a higher order than a list of M applications correspondingto the hidden page. According to a determined list order, the top Napplications corresponding to the displayed page may be preloaded with ahigher priority than the top M applications corresponding to the hiddenpage.

If the displayed page is changed based on a user's input or a statechange of the electronic device 400, a preloading application may bere-selected by repeating the above process. In this process, anapplication which is excluded from the preloading target according to achange in the displayed page among previous preloading targetapplications may be task-killed for memory efficiency.

FIG. 8 is a detailed flowchart illustrating an operation of selecting apreloading application based on an APP list page according to anembodiment of the present disclosure. Although not shown in FIG. 4A, theelectronic device may further include a display unit capable ofdisplaying various information via a screen. If the user selects anapplication to be executed, it is displayed as an icon on the screen.This page may be defined as the APP list page. The APP list page is atleast one page, and may usually include several pages. If it is assumedthat the APP list page has several pages, an attribute may be definedsuch that a page viewed through the display unit of the currentelectronic device 400 is a displayed page, and a page at both sides ofthe displayed page is a hidden page. The remaining other pages may nothave attributes. For example, in general, since the user is highlylikely to execute an application located on the displayed page, thedisplay page may have a higher priority of the page attribute than thehidden page. The selection of the preloading application may bedetermined by considering an accumulated launching count and launchingtime score, that is, an APP score (hereinafter, ‘S_(APP)’) ofapplications located on respective pages. The electronic device 400 mayselect an application having a high S_(APP) provided by the history datamanagement unit 410. Alternatively, if an external device is coupled,the electronic device 400 may identify S_(device) of the applicationsarranged on the APP list page. In this case, the electronic device 400may select an application having a high S_(device). However, since anattribute of each page has a different priority, the number ofpreloading applications selected for each attribute may be applieddifferently, and the number may be expressed by a parameter and may bechanged flexibly according to a specification of a terminal. Inaddition, a time of staying on a corresponding page may be counted toselect a preloading application in case of staying more than a specifictime ‘T’. Since a plurality of applications may be selected, theapplication may be managed with a list and then are inserted to a queueto perform preloading sequentially thereon. A specific operating methodis as follows.

FIG. 8 is a detailed flowchart illustrating an operation of selecting apreloading application based on an APP list page according to anembodiment of the present disclosure. Although not shown in FIG. 4A, theelectronic device may further include a display unit capable ofdisplaying various information via a screen. In operation 801, theelectronic device 400 may determine a time of staying on an APP listpage. For example, it may be determined whether the time of staying onthe APP list page is greater than or equal to a specific time ‘T’. Thisis because, if the time of staying on the APP list page is very short,it may be determined that the user of the electronic device 400 has nointention to execute the application arranged on the APP list page.

If the time of staying on the APP list page is greater than or equal to‘T’, in operation 803, the electronic device 400 may identify a pageattribute. Specifically, the electronic device 400 may distinguish thedisplayed page and the hidden page. Herein, an attribute may be definedsuch that a page viewed through the display unit of the currentelectronic device 400 is a displayed page, and a page at both sides ofthe displayed page is a hidden page. The remaining other pages may nothave attributes. In addition, S_(APP)s of applications arranged on eachpage may be identified through history data stored in the first memory470 of the electronic device 400. Alternatively, if an external deviceis coupled, the electronic device 400 may identify S_(device) of theapplications arranged on the APP list page. The S_(APP) (or S_(device))may be determined by considering an accumulated launching count andlaunching time of the application. For example, the greater theaccumulated launching counts of a specific application and the longerthe launching time, the greater the S_(APP) (S_(device)) may be. Inaddition, the S_(APP) (S_(device)) stored in the history data may bemaintained or updated according to a time flow.

In operation 805, the electronic device 400 may select top Napplications having a high S_(APP) (or S_(device)) for the displayedpage. In addition, the N applications may be added to an APP listmanaged by the history data management unit 410. In operation 807, theelectronic device 400 may select the top N applications having the highS_(APP). In addition, the M applications may be added to the APP listmanaged by the history data management unit 410. Herein, in operation809, a list of the N applications corresponding to the display page anda list of the M applications corresponding to the hidden page may beinput to a queue managed by the history data management unit 410.Herein, the N applications corresponding to the displayed page may havea higher input order than the M applications corresponding to the hiddenpage.

However, in operation 811, an application which has already beenpreloaded may be excluded from the APP list. In addition, an applicationwhich is not selected as a preloading target due to a change in thedisplayed page or other reasons may be task-killed.

In operation 813 the electronic device 400 may select a preloadingapplication according to a queue order finally determined in the aboveprocess, and may preload the selected application.

FIGS. 9A and 9B illustrate a method of selecting a preloadingapplication based on a change in a displayed page according to anembodiment of the present disclosure. For the purpose of explanation, itis shown in FIGS. 9A and 9B that the number of pages indicating thenumber of preloading applications for each page attribute is set to 2,and the number of hidden pages is set to 1. However, this is simply forexemplary purposes only and is not a limitation of the embodiment.Therefore, the number of preloading applications for each page attributemay vary based on a user. Alternatively, the number of preloadingapplications for each page attribute may be automatically changed byconsidering a state of the electronic device 400.

Referring to FIG. 9A, a case where a page C 915 is a displayed page isshown as an embodiment. In the page C 915, two applications having agreatest accumulated launching count may be an application C(2×4) ofwhich an accumulated launching count is 98 and an application C(3×4) ofwhich an accumulated launching count is 76. Herein, the accumulatedlaunching count may include a total accumulated launching count of theapplication or an accumulated launching count for a specific duration bycommutating inversely from the current time. Therefore, the applicationC(2×4) and the application C(3×4) may be added to a preloading list. Inaddition, in a page B 913 and a page D 917, which correspond to hiddenpages, applications having the greatest accumulated launching count maybe respectively an application B(4×4) and an application D(4×4). Each ofthe application B(4×5) and the application D(4×4) may be selected andadded to the list.

Herein, since an application located on a currently displayed page ismore likely to be executed than an application located on a hidden page,the preloading list may be configured in the order of C(2×4), C(3×4),D(4×4), and B(4×5). Herein, for example, a list order between theapplication C(2×4) and application C(3×4) of the displayed page may bedetermined by a size of the accumulated launching count. In anembodiment, since the accumulated launching count of the applicationC(2×4) is 98 and the accumulated launching count of the applicationC(3×4) is 76, the application C(2×4) may have a higher list order thanthe application C(3×4). The list order between the application B(4×5)and application D(4×4) of the hidden page may be determined byconsidering a change in the displayed page. For example, if thedisplayed page is changed from the page B 913 to the page C 915, theapplication D(4×4) may be more likely to be executed than theapplication B(4×5). Therefore, even if the accumulated launching countis smaller, the application D(4×4) may have a higher list order than theapplication B(4×5). If the list order is determined, the applicationsmay be preloaded after being input to a queue according to the listorder.

FIG. 9B illustrates a case where the displayed page is changed from thepage C 915 to the page D 917. In this case, an attribute of each pagemay show that the page D 917 is the displayed page, and the page C 915and the page E 919 are hidden pages. In this case, a preloading targetapplication may be selected by applying the same criterion as in FIG.9A. In the page D 917, two applications having the greatest accumulatedlaunching count may be an application D(4×4) of which an accumulatedlaunching count is 54 and an application D(3×3) of which an accumulatedlaunching count is 42. In addition, in the page C 915 and page E 919corresponding to the hidden pages, applications having the greatestaccumulated launching count may be an application C(2×4) and theapplication E(2×4), respectively. The list order may be configured inthe order of D(3×3), D(4×4), E(2×4), and C(4×5) in the same manner as inFIG. 9A. Herein, applications located at D(3×3) and E(2,4) other thanpreloaded C(2×4) and D(4×4) may be selected and preloaded. In this case,the previously preloaded C(3×4) and B(4×5) may be task-killed since theydo not meet a current selection criterion. In the above embodiment, notonly the accumulated launching count but also the launching speed of theapplication may be considered as a criterion for selecting a preloadingapplication.

There are various types of input interfaces used to control theelectronic device 400. A terminal may be controlled with a sensor-basedinput interface (e.g., static electricity of a finger, pen, remotecontrol, etc.) or other various input interfaces (e.g., keyboard, mouse,eye tracking, etc.). If the application of the electronic device 400 isdirectly executed with the input interface, a preloading application maybe selected based on a location (cursor) indicated by a correspondinginterface. A method of selecting the preloading application with theinput interface is as follows.

FIG. 10 is a flowchart illustrating an operation of selecting apreloading application based on an input interface according to anembodiment of the present disclosure.

In operation 1001, the electronic device 400 may detect a newapplication input at a location of a cursor controlled based on an inputinterface. Herein, the new application is an application which has notyet been preloaded. The cursor may include a mouse point, a point of asmart pen, or the like. The cursor may be controlled through the mouse,the smart pen, or the like to input a user command for the electronicdevice 400.

Thereafter, in operation 1003, the electronic device 400 may determine apreloading wait time ‘T’ of the new application. Herein, the preloadingwait time ‘T’ implies a wait time for preloading an applicationindicated by the cursor. The preloading wait time ‘T’ may be determinedby referring to S_(APP) (or S_(device) if an external device is coupled)from a history data management unit of the application. For example, thegreater then S_(APP) (or S_(device)), the shorter the preloading waittime T may be.

After the preloading wait time T of the application is determined, inoperation 1005, the electronic device 400 may identify whether a timefor which the cursor stays in the application is greater than or equalto the preloading wait time. This is because, if the time for which thecursor stays in the application is very short, for example, if theapplication is simply included in a movement path of the cursor, a useris unlikely to execute the application. If the time for which the cursorstays in the application is shorter than the preloading wait time T, theapplication may not be preloaded.

Otherwise, if the time for which the cursor stays in the application islonger than the preloading wait time T, in operation 1007, theelectronic device 400 selects the application as a preloading target.Accordingly, the electronic device 400 may preload the application.

Additionally, in a case where a specific input interface is used for thefirst time after the electronic device 400 is booted (switched on), anapplication having a great accumulated application execution countS_(interface) of the input interface may be selected as the preloadingapplication. The S_(interface) may be determined based on an accumulatedexecution count and launching time of an application executed whileusing the specific input interface. Thereafter, a preloading applicationtarget may be additionally changed based on a cursor location based onthe aforementioned operation. The accumulated application executioncount S_(interface) of the input interface may be maintained and updatedbased on a specific period from the history data management unit.

FIG. 11 is a flowchart illustrating an operation of selecting apreloading application by classifying an application region according toan embodiment of the present disclosure. In operation 1101, theelectronic device 400 may identify whether an input interface to be usedcorresponds to an initially used interface. Herein, if the electronicdevice 400 is switched off and thereafter is switched on again, theinitial use implies an input interface initially used at a later time.If the input interface to be used is initially used, in operation 1117,the electronic device 400 may select an application having a highS_(interface). Herein, the number of applications to be selected may belimited to up to a specific number N in a descending order of theS_(interface) according to a state of the electronic device. N may beany number, and may be determined by a user's selection or byconsidering a state of the electronic device 400. Herein, theS_(interface) may be determined based on an application launching countand launching time of each case where the input interface is used. Forexample, the S_(interface) may be high if a specific application has agreat launching count and a long launching time while a specific inputinterface is used. Alternatively, if a specific external electronicdevice is coupled with the electronic device 400, the S_(interface) maybe separately managed for each specific external device. In operation1199, the electronic device 400 may select and preload the applicationselected in operation 1117 as a preloading application.

Otherwise, if the input interface is not initially used, in operation1103, the electronic device 400 may detect a new application input at alocation of a cursor controlled based on the input interface. That is,if the cursor is located in the application region, the electronicdevice 400 may detect the new application input. For example, theapplication region is indicated by a reference numeral 1201 in FIG. 12A.Herein, the new application input implies an application that has notyet been preloaded. Thereafter, in operation 1105, the electronic device400 may determine a preloading wait time of the new application. Herein,the preloading wait time implies a wait time for preloading anapplication indicated by a cursor. The preloading wait time may bedetermined by referring to S_(APP) (or S_(device) if the external deviceis coupled) provided from the history data management unit of acorresponding application. For example, the greater the S_(APP) (orS_(device)), the shorter the preloading wait time may be set.

After the preloading wait time of the application is determined, inoperation 1107, the electronic device 400 may identify a locationindicated by the cursor. This is illustrated in FIG. 12B, and theelectronic device 400 may determine whether the location indicated bythe cursor corresponds to an APP region 1210, an extra region 1230, oranother region 1250. The APP region 1210 which has a relativelysignificant meaning may be referred to as a first region, and the extraregion 1230 may be referred to as a second region. The first regionimplies a region corresponding exactly to an application image displayedthrough the display unit of the electronic device 400, and the secondregion may include a region not overlapping with the first region andextended by a specific width in four directions from the first region.For example, as shown in FIGS. 12A and 12B, the second region may implya region which is further extended by a distance of about n in foursides of the first region. According to an embodiment, the first region(the APP region 1210) may correspond to a region 1201 of FIG. 12A.According to another embodiment, a region including the first region(the APP region 1210) and the second region (the extra region 1230) maycorrespond to the region 1201 of FIG. 12A.

If it is determined that the cursor is located in the APP region 1210,in operation 1109, the electronic device 400 may determine whether atime for which the cursor stays in the APP region 1210 is greater than apreloading wait time T₁. T₁ is any time, and may be determined by a useror may be determined by considering a state of the electronic device400. According to an embodiment, T₁ may be 2 seconds. If the cursorstays in the APP region 1210 for more than T₁, in operation 1119, theelectronic device 400 may select and preload a corresponding applicationas a preloading target application. Otherwise, if the time for which thecursor stays on the APP region 1210 is shorter than T₁, returning tooperation 1107, the electronic device 400 may determine whether acurrent cursor location corresponds to the APP region 1210, the extraregion 1230, or another region 1250.

If it is determined in operation 1107 that the cursor is not located inthe APP region 1210, in operation 1111, the electronic device 400 maydetermine whether the cursor controlled through an input interface islocated in the extra region 1230. If it is determined that the cursor isnot located in the extra region 1230, returning to operation 1103, theelectronic device 400 may detect a new application input. Otherwise, ifthe cursor is located in the extra region 1230, in operation 1113, theelectronic device 400 may determine whether a time for which the cursorstays in the extra region 1230 is greater than T₂. T₂ is any time, andmay be determined by a user or may be determined by considering a stateof the electronic device 400. For example, T₂ may be 3 seconds.According to an embodiment, T₁ may be less than T₂. This is because, ina case where the cursor is located in the APP region 1210, a probabilityof executing a corresponding application is higher empirically incomparison with a case where the cursor is located in the extra region1230. If the cursor stays in the extra region 1230 for more than T₂, inoperation 1119, the electronic device 400 may select and preload acorresponding application as a preloading target application. Otherwise,if the time for which the cursor stays in the extra region 1230 isshorter than T₂, in operation 1115, the electronic device 400 maydetermine whether a time for which the cursor returns to the extraregion 1230 is shorter than a reset time T₃. This is to consider a casewhere it is difficult to precisely adjust the location of the cursor, orwhere the cursor is moved to another region 1250 and then returns to theextra region 1230 due to a user's mistake or the like. That is, anyreset wait time T₃ may be predetermined, and it is possible to determinewhether the time for which the cursor returns to the extra region 1230after moving to another region 1250 is less than a set reset time T₃. T₃is any time, and may be determined by a user or may be determined byconsidering a state of the electronic device 400. For example, T₃ may be1 second. If the return time of the cursor is less than T₃, theelectronic device 400 may regard that the cursor stays in the extraregion 1230 continuously in the determining of whether the time forwhich the cursor stays in the extra region 1230 is greater than T₂.However, if the cursor is out of the extra region 1230 and the resettime T₃ is over, a corresponding task is reset, and returning tooperation 1103, a new application may be detected.

Although not shown in FIGS. 4A and 4B, the electronic device 400equipped with the smart platform may include a display unit capable ofdisplaying a variety of information. The display unit may include atouch panel to detect a user's touch input. Thus, the display unit maybe referred to as the touch screen. The touch screen may detect theuser's touch input by using, for example, a capacitive type, a resistivetype (pressure-sensitive type), or the like. The electronic device 400may be controlled by a user's input which is input through the touchscreen. Specifically, the touch input may be defined in three categoriesaccording to a sensitivity of pressing the touch screen and a durationtime. For example, it may be defined as a touch if it is pressed with atleast a critical strength N₁ for a time duration slightly shorter than acritical time T₁ (e.g., 0.5 second), as a peak if it is pressed slightlywith a strength less than a critical strength N₁ for at least a criticaltime T₁, and as a pop if it is pressed with a strength greater than thecritical strength N₁ after the peak. Herein, the touch may be referredto as a first type input, the peak may be referred to as a second typeinput, and the pop may be referred to as a third type input. A criterionfor dividing the pressing sensitivity and time may be presented byparameters, and may be applied flexibly according to a specification andusage of the electronic device 400.

If the sensitivity and time of pressing a region corresponding to anapplication icon of a touch screen by a user to execute the applicationcorrespond to a peak, the electronic device 400 may select acorresponding application as a preloading application.

Further, in addition to a case of touching the application icon, if apeak input is applied to a specific target, an application correspondingto a pop input is selected thereafter as the preloading application. Forexample, if a link of a website is a peak in an application (a textmessage, a messenger, a notepad, etc.) other than a browser, the link isbriefly displayed through the touch screen of the electronic device 400,and an operation of accessing the link through the browser after the popinput may be assumed. In this case, the electronic device 400 selects abrowser application as the preloading application.

However, although a corresponding application is preloaded due to a peakoperation, if a pop is not executed thereafter and another operation isperformed, a preloaded application is task-killed.

FIG. 13 is a flowchart illustrating an operation of selecting apreloading application by using a touch input method according to anembodiment of the present disclosure.

Although not shown in FIGS. 4A and 4B, the electronic device 400 mayfurther include a display unit, and the display unit may include a touchpanel for detecting a user's touch input. Therefore, the display unitmay be referred to as a touch screen. The touch screen may detect theuser's touch input by using a capacitive type, a resistive type(pressure-sensitive type), or the like. In operation 1301, theelectronic device 400 may detect the user's touch input which is inputthrough the touch screen.

Thereafter, in operation 1303, the electronic device 400 may determine atouch input type for the user touch input. The user touch input may bedefined in three categories according to a sensitivity and time ofpressing the touch screen. For example, it may be defined as a touch ifit is pressed with at least a critical strength N₁ for a time durationslightly shorter than a critical time T₁ (e.g., 0.5 second), as a peakif it is pressed slightly with a strength less than a critical strengthN₁ for at least a critical time T₁, and as a pop if it is pressed with astrength greater than the critical strength N₁ after the peak. Herein,the touch may be referred to as a first type input, the peak may bereferred to as a second type input, and the pop may be referred to as athird type input. A criterion for dividing the pressing sensitivity andtime may be presented by parameters, and may be applied flexiblyaccording to a specification and usage of the electronic device 400.

If the touch input type is determined as a touch, in operation 1305, theelectronic device 400 may select and preload an application which existsat a touched position as a preloading application.

If the touch input type is determined as a peak, in operation 1307, theelectronic device 400 may determine whether a peak input is achieved inan application icon. Herein, the application icon may be indicated by areference numeral 1201 of FIG. 12A. If the peak input is achieved in theapplication icon, in operation 1305, the electronic device 400 mayselect and preload a corresponding application as a preloadingapplication.

On the contrary, it may be assumed a case where the peak input isachieved in another location other than the application icon. Forexample, it may be assumed a case where a link of a website is a peak inanother application (text messaging, messenger, notepad, etc.) otherthan a browser application. In this case, if a corresponding link isbriefly viewed through the display unit of the electronic device 400 andthereafter a pop operation is achieved, a link access operation may beachieved through the browser application. Therefore, if the peak inputis achieved in another location other than the application icon, inoperation 1309, the electronic device 400 may select an applicationscheduled to be executed according to a pop input. In addition, inoperation 1305, the selected application may be selected and preloadedas the preloading application. However, although a correspondingapplication is preloaded due to a peak operation, if a pop is notexecuted thereafter and another operation is performed, a preloadedapplication is task-killed.

There are several types of electronic devices equipped with a smartplatform used by an individual user. For example, an electronic devicesuch as a smart phone, a table, a smart watch, smart glasses, a drone,or the like may be equipped with the smart platform. An electronicdevice that can be used by interworking with other devices may have adifferent type of applications frequently used, based on a usagepurpose. In this case, preloading application information varies foreach device, and if a specific device is used by replacement, theexisting preloading application information will disappear. Therefore,the preloading application information may be applied on a real timebasis as a cloud account, and the preloading application information ofseveral electronic devices may be shared by selectively applying itthrough a manager application of a main electronic device such as asmart phone.

The applying of the preloading application information on a real timebasis through the cloud account is possible if the main electronicdevice is coupled with a network. The main electronic device may sharethe preloading application information through an interface (Wi-Fi,Wi-Fi Direct, network, Bluetooth, etc.) associated with interworkingsub-electronic devices. In this case, the manager application whichmanages the electronic devices may be used to deliver parametersrequired in sharing.

Referring to FIG. 14, the main electronic device 1410 categorizes typesof interworking sub-electronic devices 1430 and 1450 to differentiateand arrange a unique preloading application score S_(D) with respect toa corresponding sub-electronic device. Herein, the S_(D) is a scorestored in a corresponding interworking sub-electronic device, and may bedetermined based on an accumulated launching count and launching time ofan application. For example, if the interworking sub-electronic device1430 is a smart watch, the main electronic device 1410 may receive S_(D)information from the sub-electronic device 1430 and store and manage theinformation by classifying it as a smart watch category. In addition,the S_(D) arranged in the main electronic device 1410 may be used byapplying it on a real time basis to the cloud 1470. Herein, the mainelectronic device 1410 may correspond to the electronic device 400 ofFIGS. 4A and 4B, and the sub-electronic device may correspond to anexternal electronic device.

FIG. 15 is a flowchart illustrating a method of sharing S_(D)information if interworking is achieved between electronic devicesaccording to an embodiment of the present disclosure. If the mainelectronic device 1410 interworks with the sub-electronic devices 1430and/or 1450, information regarding a preloading application may beshared through the operation of the flowchart of FIG. 15. Herein, themain electronic device 1410 may correspond to the electronic device 400of FIGS. 4A and 4B, and the sub-electronic devices 1430 and 1450 maycorrespond to the aforementioned external electronic device.

Specifically, in operation 1501, the electronic device 400 may detectthe interworking with the external electronic device, and may generate asensing event. The electronic device 400 may interwork with the externalelectronic device, for example, through Wi-Fi, Wi-Fi Direct, network,Bluetooth, or the like. If preloading application information is shared,the electronic device 400 may be the main electronic device, and theexternal electronic device may be the sub-electronic device.

If the external electronic device interworks with the main electronicdevice 400, in operation 1503, the main electronic device 400 mayclassify a category of the interworking external electronic device, andmay determine whether application S_(D) information correspondingthereto is stored in the electronic device 400. Alternatively, theelectronic device 400 may determine whether the application S_(D)information corresponding to the classified category is stored in acloud through a network connection with a server.

If the application S_(D) information corresponding to the category towhich the interworking external electronic device belongs is not storedin the electronic device 400 or the cloud, in operation 1505, theelectronic device 400 may store the application S_(D) informationcorresponding thereto by receiving it from the external electronicdevice. Alternatively, the electronic device 400 may store and managethe received S_(D) information of the application corresponding theexternal electronic device by uploading it the cloud through the networkconnection.

On the contrary, it may be assumed a case where the application S_(D)information corresponding the category to which the interworkingelectronic device belongs is stored in the electronic device 400 or thecloud. In this case, in operation 1507, the electronic device 400 maypreferentially deliver K pieces of S_(D) information having a highpriority to the external electronic device among the application S_(D)information corresponding the category to which the external electronicdevice belongs. This is to avoid an overhead which may occur if data istransmitted concurrently since the S_(D) information has a significantlygreat amount of data. Therefore, if the application corresponding to theK pieces of S_(D) information is completely preloaded in the externalelectronic device, in operation 1509, the electronic device 400 maytransmit the remaining pieces of S_(D) information to the externalelectronic device. However, an embodiment in which all pieces of S_(D)information corresponding to the category to which the externalelectronic device belongs are transmitted concurrently instead of beingtransmitted separately in two steps as described above.

Upon completion of the preloading in the external electronic device, inoperation 1505, the changed S_(D) information of the external electronicdevice may be applied and updated in the electronic device 400.

FIG. 16 is a flowchart for determining a preloading level according toan embodiment of the present disclosure. The present disclosure proposesa method in which preloading is performed in a stepwise manner accordingto a resource type (all, library, classes, layout, image, etc.). As anembodiment, the preloading level is classified according to the resourcetype as shown in FIG. 17. In this case, a step of performing preloadingbased on the preloading level (0 to 10) may be determined. In addition,an operation criterion (the number of resources) of the preloading levelis changeable according to a specification of a terminal, and a durationin which the preloading is not performed may be set by considering astate or the like of the electronic device 400.

A detailed operating method is as follows. In operation 1601, theelectronic device 400 may determine a free memory ratio of the secondmemory 490 embedded in the electronic device 400. Specifically, withrespect to a specific threshold 1, if the free memory ratio is higherthan the threshold, it may be determined as high, and otherwise it maybe determined as low. For example, if the free memory ratio is higherthan 50%, it may be determined as high, and otherwise it may bedetermined as low. Thereafter, the electronic device 400 may determine aload of a Central Processing Unit (CPU) in operation 1603 if the freememory ratio is determined as high, or in operation 1605 if the freememory ratio is determined as low. Specifically, in operation 1603, ifthe CPU load is lower than a specific threshold 2, it may be determinedas low, and otherwise it may be determined as high. For example, it maybe determined as low if the CPU load is lower than 60% of a total CPUcapacity, and otherwise may be determined as high. In addition, inoperation 1605, it may be determined as low if the CPU load is lowerthan a specific threshold 3, and otherwise may be determined as high.For the purpose of explanation, not for the purpose of limitation of theembodiment, the threshold 2 and the threshold 3 may be set to have thesame value. Thereafter, in operations 1607 to 1613, the electronicdevice 400 may determine a weight W by considering the free memory ratioand the CPU load. Herein, a relationship of W₁>W₂>W₃>W₄ may besatisfied.

In operation 1615, the electronic device 400 may determine thepreloading level based on the values W₁ to W₄ determined through theoperations 1607 to 1613. According to an embodiment, the preloadinglevel may be determined by a product of S_(APP) determined byconsidering an application's launching count and launching time receivedfrom the history data management unit 410 and the value W obtained byconsidering a current state (CPU load, memory) of a terminal. Accordingto another embodiment, if the external device is coupled with theelectronic device 400, the preloading level may be determined bymultiplying S_(interface) and the value W. According to anotherembodiment, if an input interface is used, the preloading level may bedetermined by a product of S_(interface) and the value W. Herein, forthe purpose of explanation, not for the purpose of limitation of theembodiment, it is assumed that the preloading level is determined by aproduct of the S_(APP) and the value W. In this case, the value S_(APP)may have a value ranging from 0 to 10 which is the same range of thepreloading level, and the value W may be determined based on a CPU loadand a free memory ratio of the entire memory. The value W is a value inthe range of 0 to 1, and may indicate a ratio (%) by which the S_(APP)is applied based on the current state of the terminal. For example, ifthe value W is ‘0’ (0%), the preloading level is 0 irrespective of theS_(APP), and thus a corresponding application may not be preloaded atall.

The step performed based on the preloading level may be determined afterdetermining the preloading level.

FIG. 18 is a flowchart illustrating an overall operation of theelectronic device 400 according to an embodiment of the presentdisclosure. In operation 1801, the electronic device 400 may predict theuse of a specific application to select it as a preloading targetapplication in advance. Specifically, first, the electronic device 400may select the preloading target application by considering theapplication's accumulated launching count and launching time while theexternal device is coupled, based on a connection mechanism and a typeof the external device interworking with the electronic device 400.Second, the electronic device 400 may divide a page attribute into adisplayed page and a hidden page, and may select the preloading targetapplication by considering the page attribute and the application'saccumulated launching count. Third, the electronic device 400 may selectthe preloading application based on a location indicated by an inputinterface if an application of the electronic device 400 is directlyexecuted via the input interface. Forth, the electronic device 400 mayselect the preloading application based on a type of a touch input byclassifying a user touch input which is input through a touch panel into3 types. A method of selecting the preloading application based on thefour types is described in detail in the process described withreference to FIG. 6 to FIG. 13.

Upon selecting the preloading target application, in operation 1803, theelectronic device 400 may determine the preloading level for the targetapplication. A process of determining the preloading level is asfollows. According to an embodiment, the preloading level may bedetermined by a product of S_(APP) determined by considering anapplication's launching count and launching time received from thehistory data management unit 410 and a weight W obtained by consideringa current state (CPU load, free memory) of a terminal. According toanother embodiment, if the external device is coupled with theelectronic device 400, the preloading level may be determined bymultiplying S_(interface) and the value W. According to anotherembodiment, if an input interface is used, the preloading level may bedetermined by multiplying S_(interface) and the value W.

Upon determining the preloading level, in operation 1805, the electronicdevice 400 may determine the step performed based on the preloadinglevel. The specific level is a factor that can be determined byconsidering a performance, current state, or the like of the electronicdevice 400.

Optionally, the operation 1801 may be omitted in the flowchart of FIG.18. That is, it is possible to consider an embodiment in which allapplications included in the electronic device 400 are considered as thepreloading target without an additional operation of selecting thepreloading target application, and accordingly, the preloading level isdetermined by multiplying the S_(APP) (or S_(device) or S_(interface))corresponding to each application and the value W indicating the currentstate of the electronic device 400.

History data required to select the preloading application and determinethe preloading level may be used in the present disclosure. The historydata management unit 410 may persistently use the history data forapplication usage information of a user by storing it in the firstmemory 470 of the electronic device in a form of a file. The historydata management unit 410 may update and maintain a relative score byconsidering an application's accumulated execution count and launchingtime received on a real time basis. The relative score may be determinedby taking a value which is twice an average value of all application'sexecution count and launching time as a maximum (max) score. Thecalculated execution count score and launching time score are present inan application executed at least one time in the electronic device 400,and may be classified into categories (game, health, education, finance,etc.) according to an application attribute. The classification of thecategories may be achieved based on a criterion classified in anapplication market or the like. In addition, the history data may betransferred to be used for an additional use in other electronic devicesof the user.

FIG. 19 illustrates an effect of reducing a launching time of apreloaded application according to an embodiment of the presentdisclosure. A reference numeral 1910 indicates a launching time of anapplication which is not preloaded. A reference numeral 1950 indicates alaunching time of an application which is preloaded. Herein, the sameapplication is executed at the time indicated by the reference numerals1910 and 1950. By comparing the reference numeral 1910 and the referencenumeral 1950, it can be seen that the launching time can be reducedthrough precoding.

FIG. 20 illustrates an effect according to an embodiment of the presentdisclosure. An application to be executed by a user is pre-selected andexecuted (preloaded) in advance to improve a launching speed experiencedby the user. A time difference between application's initial launchingand re-launching is as shown in FIG. 19. Numerically, a re-launchingtime is faster by about 47% on average. It is expected to improveperformance numerically by applying the present disclosure.

In addition, a method of compensating for the problem of theconventional preloading scheme may lead to an increase in a range of apreloading application, a decrease in an overhead, and an improvement ofmemory efficiency. Since a preloading target is selected by predictingit based on three factors, it is possible to select a wide range ofpreloading application in which a user's application execution patternis considered. In addition, it is possible to adjust an amount ofresources to be loaded to the second memory 490 if an application isexecuted in advance due to a preloading level, and memory efficiency canbe improved since a preloading application is changed by considering auser's behavior on a real time basis. Finally, since a terminal'scurrent CPU load and a free memory ratio are considered in preloading,an overhead can be reduced.

A preloading application and a preloading level can be determined byconsidering an application execution pattern of a user and a currentstate of a terminal. Accordingly, if the application is executed, alaunching speed experienced by the user can be improved and memoryefficiency can be increased.

Since a plurality of factors are used in prediction to select apreloading target, it is possible to select a preloading applicationwidely based on the application execution pattern of the user. Inaddition, an amount of resources which are read by a memory can beadjusted if executed in advance due to the determined preloading level,and the preloading application is changed by considering a user'sbehavior on a real-time basis, thereby improving memory efficiency.Finally, an overhead can be decreased by referring to a current CentralProcessing Unit (CPU) load and memory ratio of a terminal if preloaded.

Methods based on embodiments disclosed in the claims and/orspecification of the present disclosure can be implemented in hardware,software, or a combination of both.

If implemented in software, computer readable recording medium forstoring one or more programs (i.e., software modules) can be provided.The one or more programs stored in the computer readable recordingmedium are configured to be executed by one or more processors in anelectronic device. The one or more programs include instructions forallowing the electronic device to execute the methods based onembodiments disclosed in the claims and/or specification of the presentdisclosure.

The program (i.e., the software module or software) can be stored in arandom access memory, a non-volatile memory including a flash memory, aRead Only Memory (ROM), an Electrically Erasable Programmable Read OnlyMemory (EEPROM), a magnetic disc storage device, a Compact Disc-ROM(CD-ROM), Digital Versatile Discs (DVDs) or other forms of opticalstorage devices, and a magnetic cassette. Alternatively, the program canbe stored in a memory configured in combination of all or some of thesestorage media. In addition, the configured memory may be plural innumber.

Further, the program can be stored in an attachable storage devicecapable of accessing the electronic device through a communicationnetwork such as the Internet, an Intranet, a Local Area Network (LAN), aWide LAN (WLAN), or a Storage Area Network (SAN) or a communicationnetwork configured by combining the networks. The storage device canhave an access to a device for performing an embodiment of the presentdisclosure via an external port. In addition, an additional storagedevice on a communication network can have an access to the device forperforming an embodiment of the present disclosure.

While the present disclosure has been shown and described with referenceto certain preferred embodiments thereof, it will be understood by thoseskilled in the art that various changes in form and details may be madetherein without departing from the spirit and scope of the presentdisclosure as defined by the appended claims. Therefore, the scope ofthe present disclosure is defined not by the detailed descriptionthereof but by the appended claims, and all differences withinequivalents of the scope will be construed as being included in thepresent disclosure.

1. A method of operating an electronic device, the method comprising:selecting at least one application of a preloading target based on ascore for each application determined based on at least one of alaunching count and a launching time of applications stored in a firstmemory; and preloading the at least one application to a second memory.2. The method of claim 1, wherein the score is determined based on atleast one of the launching count in a predetermined duration, or thelaunching count in a state where an external device is coupled with theelectronic device.
 3. (canceled)
 4. The method of claim 1, wherein theselecting of the at least one application of the preloading targetcomprises selecting the at least one application of the preloadingtarget based on an attribute of a page to which icons of theapplications belong, and wherein the page attribute comprises whether apage is being displayed in the electronic device.
 5. The method of claim4, wherein the preloading of the at least one application comprisespreloading an application corresponding to the page being displayedprior to an application corresponding to a page which is not beingdisplayed.
 6. The method of claim 1, wherein, if a cursor controlledthrough an input interface is located in an application regioncorresponding to at least one of the applications for at least a waittime, the selecting of the at least one application of the preloadingtarget comprises selecting an application corresponding to theapplication region, and wherein the wait time is determined based on thescore.
 7. (canceled)
 8. (canceled)
 9. The method of claim 1, wherein theselecting of the at least one application of the preloading targetcomprises, if a touch input which is input through a touch screen of theelectronic device corresponds to a peek operation and belongs to anapplication region, selecting the at least one application as thepreloading target, and if the touch input corresponds to the peekoperation and does not belong to the application region, selecting anapplication that can be executed in a pop operation as the preloadingtarget.
 10. The method of claim 1, wherein the preloading of the atleast one application comprises: determining a preloading level for theat least one application of the preloading target; and preloading the atleast one application in a stepwise manner based on the preloadinglevel, wherein the preloading level is determined based on the score anda variable indicating a state of the electronic device.
 11. The methodof claim 10, wherein the variable is determined based on at least one ofa central processing unit (CPU) load of the electronic device and a freememory proportion of the second memory, and wherein the preloading levelis a product of the variable and the score.
 12. The method of claim 1,further comprising: sharing information regarding a preloadingapplication through a connection with a first external device; anduploading the information regarding the preloading application to aserver, wherein the information regarding the preloading applicationcomprises information regarding the score for each application of theelectronic device and a score for each application of the first externaldevice.
 13. (canceled)
 14. The method of claim 12, further comprising:downloading the information regarding the preloading application storedin the server; and transmitting the information regarding the preloadingapplication of the first external device included in the downloadedinformation to the first external device or a second external devicebelonging to the same category as the first external device. 15.(canceled)
 16. An electronic device comprising: at least one processorconfigured to: select at least one application of a preloading targetbased on a score for each application determined based on at least oneof a launching count and launching time of applications stored in afirst memory, and preload the at least one application to a secondmemory.
 17. The electronic device of claim 16, wherein the score isdetermined based on at least one of the launching count in apredetermined duration, or the launching count in a state where anexternal device is coupled with the electronic device.
 18. Theelectronic device of claim 16, wherein the at least one processor isfurther configured to select the at least one application of thepreloading target based on an attribute of a page to which icons of theapplications belong, and wherein the page attribute comprises whether apage is being displayed in the electronic device.
 19. The electronicdevice of claim 18, wherein the at least one processor is furtherconfigured to preload an application corresponding to the page beingdisplayed page prior to an application corresponding to a page which isnot being displayed.
 20. The electronic device of claim 16, wherein theat least one processor is further configured to, if a cursor controlledthrough an input interface is located in an application regioncorresponding to at least one of the applications for at least a waittime, select an application corresponding to the application region, andwherein the wait time is determined based on the score.
 21. Theelectronic device of claim 16, wherein the at least one processor isfurther configured to, if a cursor controlled through an input interfaceis located in an application region corresponding to at least one of theapplications for at least a wait time, select an applicationcorresponding to the application region, and wherein the wait time isdetermined based on the score.
 22. The electronic device of claim 16,wherein the at least one processor is further configured to, if a touchinput which is input through a touch screen of the electronic devicecorresponds to a peek operation and belongs to an application region,select the at least one application as the preloading target, andwherein the at least one processor is further configured to, if thetouch input corresponds to the peek operation and does not belong to theapplication region, select an application that can be executed in a popoperation as the preloading target.
 23. The electronic device of claim16, wherein the at least one processor is further configured to:determine a preloading level for the at least one application of thepreloading target, and preload the at least one application in astepwise manner based on the preloading level, and wherein thepreloading level is determined based on the score and a variableindicating a state of the electronic device.
 24. The electronic deviceof claim 23, wherein the variable is determined based on at least one ofa central processing unit (CPU) load of the electronic device and a freememory proportion of the second memory, and wherein the preloading levelis a product of the variable and the score.
 25. The electronic device ofclaim 16, further comprising a transceiver configured to: shareinformation regarding a preloading application through a connection witha first external device, and upload the information regarding thepreloading application to a server, wherein the information regardingthe preloading application comprises information regarding the score foreach application of the electronic device and a score for eachapplication of the first external device.